iT邦幫忙

2025 iThome 鐵人賽

DAY 6
0
Software Development

AI 慣老闆的 AI 學習歷程 - AI 時代的軟體工程的反思系列 第 6

AI 慣老闆的 AI學習日記 Day5 - 「回不去啊!」Replit 版本黑洞(Git Init & Commit 救援

  • 分享至 

  • xImage
  •  

https://ithelp.ithome.com.tw/upload/images/20250809/20142509cESMsPkbcT.png

貝老闆:我昨天有做版本管理!我有截圖!還取名「final_final_v3_really_last_final」!

小可:那是相簿管理,不是版本管理。你這叫「圖文並茂的災難現場」。

貝老闆:我在網路上有看到有人在討論跟 AI reset session 然後再叫他重新產生一版。

小可:那是Reset ! 重點是要先用 Git 儲存過去版本,好威不是有說過!

貝老闆:Git 我聽過!你看——我也會 commit,我剛剛跟團隊承諾(commit)今天準時下班。

小可:你那是心願清單。我要的是 git commit。

貝老闆:那 AI 呢?不是說 Replit 有 Agent mode 會自動處理?

小可:Agent mode 你也要先跟他訂好規則,作天好威跟你講的你到底有沒有聽啊?你連 .gitignore 都沒講,
它以為你熱愛把 node_modules 打包帶著走。

貝老闆:那我現在要說什麼人話訂什麼規則?小聲說:我的規則就是現在馬上要~~

小可:說「初始化 Git、每完成一次新功能測試後 commit、推到 GitHub」。來,我們連線好威,省得你跟昨天續前緣。

(三方通話)
好威:流程很簡單:git init → git add -A → git commit -m "feat: 起碼有個昨天" → 連上遠端 git remote add origin <repo-url>、git push -u origin main。你也可以跟 AI 說每次完成新功能和測試產生 git commit message 讓你 review,別忘了每次改變都要開新的 feature branch。

貝老闆:這樣我就能回昨天?好威:何止昨天,你可以任意決定任何版本,而且明天也回得去,用 git 開 feature branch 就是像奇異博士開啟多個平行宇宙。

小可:我想回到還沒用 AI 的宇宙版本…Orz..

🆘 救援劇本(真的回不去時)

每次發生悲劇時先「止血」:新開分支備份 git checkout -b rescue/$(date +%Y%m%d)。看現況 git status,用 git reflog 找可回復節點。若只是暫存被覆蓋,git restore .;若確定要退一步,再考慮高風險的 git reset --hard HEAD~1。原則只有一條:先複本,後動刀;在救援分支驗證無誤,再合回主線。

概念拆解

1️⃣ Git Init 與 Commit 為何是生命線

對於工程師來說這是日常,但是對於沒有開發經驗的人來說,這是一個需要額外學習的概念,沒有版本控管: Git,改檔只是單機「覆寫」;有了 Git,才有一條可回放的時間軸。git init 是把時光機裝起來,commit是在時間軸上釘下一顆可命名的釘子。出事時,用 git log --oneline --graph 回看脈絡,知道「誰、何時、為何」改了什麼;這些訊息就是微型變更單。對個人是保險,對團隊是共識:搭配 Pull Request 做程式碼審查,爭議變討論、羅生門變紀錄。金句:沒有 commit,就沒有真相。

2️⃣ 小步快跑、原子化 Commit 的威力

我會建議把每次的大改(feature)成 3~5 個原子化 commit,就像把影片切分鏡。哪一格出問題,用 git bisect 二分搜索,十來步就能鎖定兇手。訊息採 Conventional Commits(feat/fix/chore),讓變更類型一眼辨識,也能自動產生 Changelog。多花 30 秒寫清楚訊息,可少花 3 小時在群組裡吵「誰動了我的 cheese」。金句:原子化 commit,是未來的你留給現在的你的一封備忘。

3️⃣ 與 AI 協作:把願望變成可執行 Prompt

AI 不會讀心,要給它結構。用 SGCO:S情境(在 Replit 開發 Node 專案)、G目標(初始化 Git+每日 commit+推到 GitHub)、C限制(排除 node_modules、要可複製執行)、O輸出(Shell 指令+Checklist+風險與回復)。
小白問法:「我在 Replit,Node.js;請幫我初始化 Git、設定 .gitignore,示範每日 commit 流程並推到 GitHub。」
進階問法:「請回傳可直接貼上的指令、逐步 Checklist、reflog/restore/reset 的救援方案,並生成 3 筆原子化 commit 訊息。」把情境、目標、限制、輸出說清楚,AI 才能當你的 Dev 助理,而不是雞湯生成器。

Takeaways(含「怎麼問 AI」)

✅ Git 是最低成本的時光機
有了 git init+規律 commit,你就擁有可回放的開發時間軸;再把遠端(GitHub)當雲端保險箱,雙重保護才安心。沒有版本管理,任何「回到昨天」都只是祈禱。怎麼問 AI:請產出「在 Replit 初始化 Git 並推到 GitHub 的逐步指令與注意事項」,輸出為 Shell+Markdown Checklist。

✅ 原子化 commit 像翻漫畫格
功能切小、訊息標準化,git bisect 才有威力;發生 bug,一輪二分就能逼近兇手。養成「完成一小段就 commit」的節奏,未來維護與審查都輕鬆。怎麼問 AI:把你的一坨改動描述給它,請它依 Conventional Commits 產生 3~5 則原子化訊息,並建議合理切分。

✅ 說人話跟 AI 合作(SGCO)
把願望變任務:給情境、說目標、列限制、定輸出格式;要求「可複製指令+Checklist+風險與回復」。AI 回的東西才可落地,而不是長篇大道理。怎麼問 AI:請它先用 SGCO 重述你的需求,接著給可執行方案與驗收標準。
你會發現,你把指令拆解的越清晰,AI 的效果會更好。

小作業

A. 用 SGCO 請 AI 產出「初始化 Git+推到 GitHub」的指令,在 Replit 實跑一次。
B. 把你今天的改動丟給 AI,請它切成 3 筆原子化 commit 訊息,照做一次。
C. 故意改壞一行,請 AI 產出 reflog/restore/reset 的救援劇本,按步驟還原。

今日提問

你最近有哪段修改如果能回到過去會省很多眼淚?用 SGCO 把需求丟給 AI,讓它替你寫出 Git 操作清單吧!


上一篇
AI 慣老闆的 AI學習日記 Day4 - 資料怎麼不見? Replit DB 崩潰記與 Schema Migration 血淚
下一篇
AI 慣老闆的 AI學習日記 Day 6 - 發車不臨停:為什麼一定要有 Release Branch?
系列文
AI 慣老闆的 AI 學習歷程 - AI 時代的軟體工程的反思32
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言